查看原文
其他

90%架构师都知道的压力测试,你知道吗?

Java之间 2020-10-17

点击上方Java之间”,选择“置顶或者星标”

你关注的就是我关心的!

作者:疯狂的肉丝面

压力测试定义

通过测试的方法一步一步逼近系统的临近崩溃点,这个点包括系统资源,内存,线程,应用,连接数等等。目的是为了运维和开发人员能够知道系统的极限在哪里,让业务人员和公司高层知道如果需要突破业务的极限必须先突破系统的极限。对我们评估业务升级,系统升级提供了有力的数据保障。

压力测试的分类

一般压力测试分为两类。

第一,正压力测试以之前提到的性能测试为基础,我们知道系统大致能够承受的基本压力是多少,在这个基础上对系统逐步加压,直到系统接近崩溃或者真正崩溃。简单的说就是做加法。

第二,负压力测试,在系统正常运行的情况下,逐步减少支撑系统的资源,看什么时候系统无法支撑正常的业务请求。例如:在系统正常运行的情况下,逐步减少服务器或者微服务的数量,观察业务请求的情况。说白了就是做减法。

压力测试的步骤

第一,确定测试目标与性能测试不同的是,压力测试的目标是,什么时候系统会接近崩溃。

第二,确定关键服务压力测试其实是有重点的,根据2/8原则,系统中20%的功能被使用的是最多的,我们可以针对这些核心功能进行压力测试。

第三,确定负载这个和关键服务的思路一致,不是每个服务都有高负载的,我们的测试其实是要关注那些负载量大的服务,或者是一段时间内系统中某些服务的负载有波动。这些都是测试目标。

第四,选择环境,这个和性能测试一样建议使用生产环境,不过也workaround的方法,可以参考上篇中的这部分内容。

第五,确定监视点,实际上就是对关注的参数进行监视,例如cpu负载,内存使用率,系统吞吐量等等。

第六,产生负载,这里需要从生产环境去获取一些真实的数据作为负载数据源,这部分数据源根据目标系统的承受要求由脚本驱动,对系统进行冲击。

第七,执行测试,这里主要是根据目标系统,关键组件,用负载进行测试,返回监视点的数据。建议团队可以对测试定一个计划,模拟不同的网络环境,硬件条件进行有规律的测试。

第八,分析数据,针对测试的目的,对关键服务的压力测试数据进行分析得知该服务的承受上限在哪里。对一段时间内有负载波动或者大负载的服务进行数据分析,得出服务改造的方向。

性能测试和压力测试的区别

如果说性能测试是系统的基准线的话,那么压力测试就是系统的上限或者说是系统的高压线。从基准线到高压线就是系统可以伸缩的范围。我们可以通过这两条线密切关注系统负载的情况。

原文链接:

www.toutiao.com/i6681912183552475652/

最近热文阅读:

1、为什么程序员都不喜欢使用switch而使用if来做条件跳转

2、分享一些好用的 Chrome 扩展

3、分库分表就能无限扩容吗,解释得太好了!

4、全文搜索引擎选 ElasticSearch 还是 Solr?

5、自增主键用完了怎么办?

6、三种主流的微服务配置中心深度对比!你怎么看!

7、MySQL挑战:10万连接数!

8、MySQL的这28道常见面试题,看你会不会!

关注公众号,你想要的Java都在这里!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存